package com.dingwen.treasure.kettle.vo;

import com.dingwen.treasure.kettle.enums.FileTypeEnum;
import com.dingwen.treasure.kettle.enums.TaskStateEnum;
import com.dingwen.treasure.kettle.enums.TaskTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 　TaskInfoVo
 * 　@author dingwen
 * 　@date 2022/8/22
 */
@ApiModel(value = "TaskInfoVo", description = "任务信息视图对象")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Accessors(chain = true)
public class TaskInfoVo implements Serializable {

    private static final long serialVersionUID = 1623397824501050502L;

    /**
     * 数据库主键（雪花Id）
     */
    @ApiModelProperty(value = " 数据库主键")
    private Long taskId;

    /**
     * 任务code标识
     */
    @ApiModelProperty(value = " 任务code标识")
    private String taskCode;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private LocalDateTime createTime;

    /**
     * cron表达式
     */
    @ApiModelProperty(value = "cron表达式")
    private String cronExpression;

    /**
     * 失败次数
     */
    @ApiModelProperty(value = " 失败次数")
    private Integer fail;

    /**
     * 任务执行类 全类名，Job类
     */
    @ApiModelProperty(value = " 任务执行类 全类名，Job类")
    private String fullClassName;

    /**
     * jobDataMap json格式
     */
    @ApiModelProperty(value = " jobDataMap json格式")
    private String jobDataMap;

    /**
     * job组名称
     */
    @ApiModelProperty(value = "job组名称")
    private String jobGroupName;

    /**
     * job 名称
     */
    @ApiModelProperty(value = "job 名称")
    private String jobName;

    /**
     * 任务名称
     */
    @ApiModelProperty(value = "任务名称")
    private String taskName;

    /**
     * 是否启用 1-启用 0-禁用
     */
    @ApiModelProperty(value = "是否启用 1-启用 0-禁用")
    private TaskStateEnum taskState;

    /**
     * 成功执行次数
     */
    @ApiModelProperty(value = "成功执行次数")
    private Integer success;

    /**
     * 触发器组名称
     */
    @ApiModelProperty(value = " 触发器组名称")
    private String triggerGroupName;

    /**
     * 触发器名称
     */
    @ApiModelProperty(value = "触发器名称")
    private String triggerName;

    /**
     * 更新时间
     */
    @ApiModelProperty(value = "更新时间")
    private LocalDateTime updateTime;

    /**
     * 文件Id
     */
    @ApiModelProperty(value = "文件Id")
    private String fileId;


    /**
     * 任务类型：1一次性任务 2周期性任务
     */
    @ApiModelProperty(value = "任务类型：1一次性任务 2周期性任务")
    private TaskTypeEnum taskType;


    /**
     *  文件类型 {@link FileTypeEnum}
     *
     * */
    @ApiModelProperty(value = "文件类型: 1作业 2转换")
    private FileTypeEnum fileType;

    /** 文件全名称 */
    @ApiModelProperty(value = "文件全名称")
    private String fileFullName;


}
